# -*- coding: utf8-*- # Forelesninger om Programmering i MENA1000. # Forelesning 2: If-forgreininger og Løkker (for-løkker og while-løkker) # if-forgreining: *********************************************************** # Vi ønsker igjen å beregne ballens høyde som funksjon av utgangshastighet og tid: # Vi starter med å definere noen konstanter og variabler: v0 = 5.0 # Utgangshastigheten g = 9.81 # Tyngdeakselerasjonen t = 0.0 # Tiden # Så regner vi ut høyden: y = v0*t - 0.5*g*t**2 # Vi velger å skrive ut svaret bare HVIS høyden er >= 0 ("over bakken"): if y >= 0: print "Med startfart %d er ballen %f meter over bakken etter %f sekunder." %(v0,y,t) print # tom linje else: print "Ballen har landet." # Legg merke til at alt som skal gjøres i en av forgreiningene innrykkes. # Les mer om if-forgreininger og flere muligheter i kompendiet; nyttig og viktig. # Løkker: ****************************************************************** # Vi ønsker nå å beregne og skrive ut ballens høyde ved flere tider i en tabell. # For det bruker vi løkker der programmet gjør samme operasjon flere ganger: # while løkker: ************************************************************ # I programmet som følger bruker vi muligheten til å skrive kommentar til høyre i programlinjer. # Vi starter med å definere noen konstanter og variabler: v0 = 5.0 # Utgangshastigheten g = 9.81 # Tyngdeakselerasjonen t = 0.0 # Tiden tider = [t] # En liste over tider. Vi starter med bare starttiden (0) hoyder = [0] # En liste over høyder. Vi starter med bare starthøyden (0). i = 0 # Tellevariabel for antall ganger vi har gått igjennom løkka # Den teller også indeksen på listene # Selve while-løkken. Legg merke til at det som skal gjentas må innrykkes: while hoyder[i] >= 0: i += 1 # Vi øker telle-variablen. Kan også gjøres slik: i = i + 1 tider.append(i*0.1) # Vi legger til et nytt element i tider, og gir det verdien i*0.1 t = tider[i] # Vi henter ut verdien og legger den i t-variabelen. hoyder.append(v0*t -0.5*g*t**2) # Vi regner ut høyden og legger den i et nytt element i hoyder-listen. print tider print hoyder # Vi bruker deretter en ny while-løkke til å lage en pen utskrift: j = 0 n = len(tider) print "|%10s|%10s|" % ("Tid", "Høyde") print "-------------------------------------" while j < n: print "|%10f|%10f|" % (tider[j], hoyder[j]) j += 1 print "-------------------------------------" # for-løkke: ************************************************************** # en for-løkke kan gjøre det samme mer elegant: n = len(tider) print "|%10s |%10s|" % ("Tid", "Høyde") print "-------------------------------------" for j in range(n): print "|%10f |%10f|" % (tider[j], hoyder[j]) print "-------------------------------------"